import Vue from 'vue'
import Vuex from 'vuex'
import { getItem, setItem } from '@/utils/storage'

Vue.use(Vuex)

export default new Vuex.Store({
  state: {
    // 一个user变量，存储当前用户的token信息
    user: getItem('TOKEN_KEY') || {}
  },

  // 2. 外界只可读取state中的属性，不可直接进行修改，但是可以用过mutations中定义的方法来修改state中的属性
  // => 类比与methods中的方法， 使用逻辑与refs来调用子组件方法一致
  mutations: {
    setUser (state, data) {
      /* state 表示是state对象，可以访问内部的值
        data  外界传递过来的参数 */
      state.user = data
      setItem('TOKEN_KEY', state.user)
    }
  }
})
